package com.gd.iot.energy.dao.dailymanage;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.gd.iot.energy.po.dailymanage.OperationfeeChargePO;
import com.gd.iot.energy.pojo.dailymanage.dto.OperationfeeChargeBookDTO;
import com.gd.iot.energy.pojo.dailymanage.dto.OperationfeeChargeDTO;
import com.gd.iot.energy.pojo.dailymanage.dto.OperationfeeChargeQueryDTO;
import com.gd.iot.energy.pojo.dailymanage.dto.OperationfeeInvoiceDTO;
import com.gd.iot.energy.pojo.dailymanage.vo.ChargeQueryPageVO;
import org.apache.ibatis.annotations.Param;

public interface OperationfeeChargePOMapper extends BaseMapper<OperationfeeChargePO> {

    /**
     * 收费统计
     * @param page
     * @param queryWrapper
     * @return
     */
    IPage<OperationfeeChargeDTO> selectCustomPage(IPage<OperationfeeChargeDTO> page,@Param(Constants.WRAPPER) QueryWrapper<OperationfeeChargeDTO> queryWrapper);

    /**
     * 收费查询
     * @param page
     * @param queryWrapper
     * @return
     */
    IPage<OperationfeeChargeQueryDTO> selectCustomQueryPage(IPage<OperationfeeChargeQueryDTO> page, @Param(Constants.WRAPPER) QueryWrapper<OperationfeeChargeDTO> queryWrapper);

    /**
     * 收费台账
     * @param page
     * @param queryWrapper
     * @return
     */
    IPage<OperationfeeChargeBookDTO> selectCustomChargeBookPage(IPage<OperationfeeChargeBookDTO> page,
                                                                @Param(Constants.WRAPPER) QueryWrapper<OperationfeeChargeBookDTO> queryWrapper,
                                                                @Param("startTime")String startTime,@Param("endTime")String endTime);

    /**
     * 开票管理
     * @param page
     * @param queryWrapper
     * @return
     */
    IPage<OperationfeeInvoiceDTO> selectInvoicePage(IPage<OperationfeeInvoiceDTO> page,
                                                    @Param(Constants.WRAPPER) QueryWrapper<OperationfeeInvoiceDTO> queryWrapper);
}